package cn.baddonkey.photography.agent.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import cn.baddonkey.photography.agent.entity.UserInfo;
import cn.baddonkey.photography.agent.entity.dto.UserInfoPageDto;

import org.apache.ibatis.annotations.Param;

/**
 * 用户信息Mapper接口
 *
 * <p>
 * 该接口继承自BaseMapper，提供用户信息的基本操作以及自定义的查询方法
 */
public interface UserInfoMapper extends BaseMapper<UserInfo> {

    /**
     * 分页查询用户信息
     *
     * @param page
     *            分页对象
     * @param userInfoPageDto
     *            用户信息查询条件
     * @return 分页结果
     */
    Page<UserInfo> page(Page<UserInfo> page, UserInfoPageDto userInfoPageDto);

    /**
     * 根据用户ID数组删除用户
     *
     * @param userIds
     *            用户ID数组
     * @return 删除的记录数
     */
    int deleteUserByIds(@Param("userIds") String[] userIds);

    /**
     * 检查手机号是否唯一
     *
     * @param phonenumber
     *            手机号
     * @return 用户信息对象，如果手机号已存在则返回对应用户信息，否则返回null
     */
    UserInfo checkPhoneUnique(String phonenumber);

    /**
     * 检查邮箱是否唯一
     *
     * @param email
     *            邮箱地址
     * @return 用户信息对象，如果邮箱已存在则返回对应用户信息，否则返回null
     */
    UserInfo checkEmailUnique(String email);

    /**
     * 检查用户名是否唯一
     *
     * @param userName
     *            用户名
     * @return 记录数，如果用户名已存在则返回大于0的数，否则返回0
     */
    int checkUserNameUnique(String userName);
}
